package com.bingbaihanji.controller;

import com.bingbaihanji.pojo.Area;
import com.bingbaihanji.service.AreaService;
import io.quarkus.logging.Log;
import jakarta.inject.Inject;
import jakarta.ws.rs.*;
import jakarta.ws.rs.core.MediaType;

import java.util.List;

/**
 * @author 冰白寒祭
 * @date 2024-04-06 17:16:20
 * @description //TODO
 */
@Path("/area")
public class AreaController {



    @Inject
    AreaService areaService;


    /*    {
        "area_id": 101,
        "name": "日本省",
        "parent_id": "0"
    }*/
    @POST
    @Produces(MediaType.APPLICATION_JSON) // 响应类型
    @Consumes(MediaType.APPLICATION_JSON) // 请求类型
    @Path("/area")
    public int AreaAdd(Area area) {
        Log.info(area);
        return areaService.AreaAdd(area);
    }

    @DELETE
    @Produces(MediaType.APPLICATION_JSON)
    @Path("/delete/{id}")
    public int AreaDelete(@PathParam("id") Integer id) {
        Log.info(areaService.getById(id));
        return areaService.AreaDelete(id);
    }

    @PUT
    @Produces(MediaType.APPLICATION_JSON) // 响应类型
    @Consumes(MediaType.APPLICATION_JSON) // 请求类型
    @Path("/area")
    public int AreaUpdate(Area area) {
        Log.info(area);
        return areaService.AreaUpdate(area);
    }


    @GET() // 请求方式
    @Path("/list") // 请求地址
    @Produces(MediaType.APPLICATION_JSON) // 响应类型
    public List<Area> getArea() {
        List<Area> list = areaService.list();
        for (Area area : list) {
            Log.info("area = " + area);
        }
        return list;
    }

    @GET
    @Path("/area/{id}")
    @Produces(MediaType.APPLICATION_JSON)
    public Area getArea(@PathParam("id") Integer id) {
        Area area = areaService.getById(id);
        Log.info("area = " + area);
        return area;
    }
}
